package com.ruoyi.system.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 会员信息对象 sys_member
 * 
 * @author ruoyi
 * @date 2025-04-21
 */
@ApiModel(description = "会员信息对象")
public class SysMember extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private String id;

    /** 会员名称 */
    @Excel(name = "会员名称")
    @ApiModelProperty(value = "会员名称",required = true)
    private String memberName;

    /** 会员头像 */
    @Excel(name = "会员头像")
    @ApiModelProperty(value = "会员头像",required = true)
    private String memberPicture;

    /** 手机号 */
    @Excel(name = "手机号")
    @ApiModelProperty(value = "手机号",required = true)
    private String phonenumber;

    /** 累计消费 */
    @Excel(name = "累计消费")
    @ApiModelProperty(value = "累计消费")
    private String cumulativeMoney;

    /** 账户余额 */
    @Excel(name = "账户余额")
    @ApiModelProperty(value = "账户余额")
    private String accountBalance;

    /** 会员性别 */
    @ApiModelProperty(value = "会员性别",required = true)
    private String memberSex;

    /** 生日 */
    @Excel(name = "生日")
    @ApiModelProperty(value = "生日",required = true)
    private String memberBirthday;

    /** 会员性别 */
    @Excel(name = "会员性别")
    @ApiModelProperty(value = "会员性别",required = true)
    private String memberSexCh;

    /** 0用户、1会员 */
    @ApiModelProperty(value = "0用户、1会员")
    private String status;

    /** 邀请人id */
//    @Excel(name = "邀请人id")
    @ApiModelProperty(value = "邀请人id")
    private String inviteBy;

    /** 会员到期时间 */
    @Excel(name = "会员到期时间")
    @ApiModelProperty(value = "会员到期时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date memberEndDate;

    @ApiModelProperty(value = "会员等级")
    private String memberLevel;

    @ApiModelProperty(value = "是否开启裂变")
    private String memberInvite;

    @ApiModelProperty(value = "验证码")
    private String code;

    @ApiModelProperty(value = "创建开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startDate;

    @ApiModelProperty(value = "创建结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endDate;

    private String openId;

    private String shareId;

    private String payProportion;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date memberBeginDate;

    public Date getMemberBeginDate() {
        return memberBeginDate;
    }

    public void setMemberBeginDate(Date memberBeginDate) {
        this.memberBeginDate = memberBeginDate;
    }

    public void setId(String id)
    {
        this.id = id;
    }

    public String getId() 
    {
        return id;
    }

    public void setMemberName(String memberName) 
    {
        this.memberName = memberName;
    }

    public String getMemberName() 
    {
        return memberName;
    }

    public void setMemberPicture(String memberPicture) 
    {
        this.memberPicture = memberPicture;
    }

    public String getMemberPicture() 
    {
        return memberPicture;
    }

    public void setPhonenumber(String phonenumber) 
    {
        this.phonenumber = phonenumber;
    }

    public String getPhonenumber() 
    {
        return phonenumber;
    }

    public void setCumulativeMoney(String cumulativeMoney) 
    {
        this.cumulativeMoney = cumulativeMoney;
    }

    public String getCumulativeMoney() 
    {
        return cumulativeMoney;
    }

    public void setAccountBalance(String accountBalance) 
    {
        this.accountBalance = accountBalance;
    }

    public String getAccountBalance() 
    {
        return accountBalance;
    }

    public void setMemberSex(String memberSex) 
    {
        this.memberSex = memberSex;
    }

    public String getMemberSex() 
    {
        return memberSex;
    }

    public void setMemberBirthday(String memberBirthday) 
    {
        this.memberBirthday = memberBirthday;
    }

    public String getMemberBirthday() 
    {
        return memberBirthday;
    }

    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    public void setInviteBy(String inviteBy) 
    {
        this.inviteBy = inviteBy;
    }

    public String getInviteBy() 
    {
        return inviteBy;
    }

    public Date getMemberEndDate() {
        return memberEndDate;
    }

    public void setMemberEndDate(Date memberEndDate) {
        this.memberEndDate = memberEndDate;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public Date getStartDate() {
        return startDate;
    }

    public void setStartDate(Date startDate) {
        this.startDate = startDate;
    }

    public Date getEndDate() {
        return endDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    public String getMemberSexCh() {
        return memberSexCh;
    }

    public void setMemberSexCh(String memberSexCh) {
        this.memberSexCh = memberSexCh;
    }

    public String getMemberLevel() {
        return memberLevel;
    }

    public void setMemberLevel(String memberLevel) {
        this.memberLevel = memberLevel;
    }

    public String getMemberInvite() {
        return memberInvite;
    }

    public void setMemberInvite(String memberInvite) {
        this.memberInvite = memberInvite;
    }

    public String getOpenId() {
        return openId;
    }

    public void setOpenId(String openId) {
        this.openId = openId;
    }

    public String getShareId() {
        return shareId;
    }

    public void setShareId(String shareId) {
        this.shareId = shareId;
    }

    public String getPayProportion() {
        return payProportion;
    }

    public void setPayProportion(String payProportion) {
        this.payProportion = payProportion;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("memberName", getMemberName())
            .append("memberPicture", getMemberPicture())
            .append("phonenumber", getPhonenumber())
            .append("cumulativeMoney", getCumulativeMoney())
            .append("accountBalance", getAccountBalance())
            .append("memberSex", getMemberSex())
            .append("memberBirthday", getMemberBirthday())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("status", getStatus())
            .append("inviteBy", getInviteBy())
            .toString();
    }
}
